import datetime
# ---本例解释Config机制的使用---
# 读取数据
def Query_Data(database):
    # 以下语句相当于
    # Select * From factor.cap where symbol = "000001.SZ" and date >= 20200101 and date <= 20200201 order by date desc

    # 构造筛选条件
    filter = []
    filter.append(["symbol", "000001.SZ"])
    filter.append(["date", ">=", datetime.datetime(2020, 1, 1)])
    filter.append(["date", "<=", datetime.datetime(2020, 2, 1)])

    # 构造排序条件
    sort = [("date", -1)] # 因为可以多列排序，所以采用的是List结构，-1是降序

    #
    documents = database.Find(databaseName="factor",  # 库名
                              tableName="cap",  # 表名
                              filter=filter,  # 筛选条件
                              sort=sort)  # 排序
    #
    for item in documents:
        print(item)


if __name__ == '__main__':
    #
    from Core.Config import *

    #
    pathfilename = os.getcwd() + "\..\Config\config2.json"  # 确保config文件位于正确的位置
    config = Config(pathfilename)  # 实例化Config对象
    database = config.DataBase("JDMySQL")  # 实例化一个JDMySQL对象，之后靠database这个变量来调用数据库资源
    realtime = config.RealTime()  #

    # 使用database变量，对数据库进行操作
    Query_Data(database)